-- LoadingTipsM
-- Create by zouyb
-- 加载界面中小贴士管理

module("LoadingTipsM", package.seeall);

-- 类型
-- 通用
TIP_TYPE_NORMAL           = "normal"

-- 迷宫外
TIP_TYPE_OUTSIDE_DUNGEON  = "outside";

-- 迷宫内
TIP_TYPE_INSIDE_DUNGEON   = "inside";

-- tips列表
local tipList = {};

-- 当前tip
local curTip = nil;

-- 载入配置表
local _init = false;
local loadCsv = function()
    if _init then return end
    _init = true;

    tipList = {};

    -- 转换下信息表
    local loading_tips_CSV;

    if isOverseaPackage() then
        -- 是海外版本，使用海外版本的配置表
        loading_tips_CSV = get_loading_tips_oversea_CSV();
    else
        loading_tips_CSV = get_loading_tips_CSV();
    end

    for i = 1, #loading_tips_CSV do
        local tipType = loading_tips_CSV[i].type;

        if tipList[tipType] == nil then
            tipList[tipType] = {};
        end

        table.insert(tipList[tipType], loading_tips_CSV[i]);
    end

    loading_tips_CSV = {};
end

-- 初始化
function init()
    loadCsv();
    curTip = nil;
end

-- 获取贴士
function getTip()
    if curTip == nil then
        -- 获取随机贴士
        nextRandomTip();
    end

    return curTip;
end

function nextRandomTip()
    local tipType = TIP_TYPE_OUTSIDE_DUNGEON;

    if DungeonM.isInDungeon() then
        -- 迷宫内，修改类型
        tipType = TIP_TYPE_INSIDE_DUNGEON;
    end

    -- 获取贴士列表
    local list = tipList[tipType] or {};

    -- 增加普通类型的配置
    list = table.append(list, tipList[TIP_TYPE_NORMAL]);

    -- 随机获取一条贴士
    local key = table.randomKey(list);

    curTip = list[key].tip;
end
